package com.miyu.system.pojo.system;

import com.miyu.system.utils.jpacomment.annotation.ColumnComment;
import com.miyu.system.utils.jpacomment.annotation.TableComment;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import jakarta.persistence.*;
import java.io.Serializable;
import java.util.Date;


import lombok.Data;

/**
 * 文件管理;
 * @author : miyu
 * @date : 2024-12-15
 */
@ApiModel(value = "文件管理",description = "")
@Data
@Entity
@Table(name="sys_file_manager")
@TableComment("文件管理")
public class SysFileManager implements Serializable,Cloneable{
    /** 自增ID;自增ID */
    @Id
    @TableGenerator(name="id_gen",  table="sys_id_generator", pkColumnName="table_name", pkColumnValue="sys_file_manager", valueColumnName="id_value", initialValue=1, allocationSize=1)
    @GeneratedValue(strategy=GenerationType.TABLE, generator="id_gen")

    @ApiModelProperty(value="自增ID",notes = "自增ID")
    @Column(name = "id", nullable = false,length=20 )
    @ColumnComment("自增ID")
    private Long id ;
    /** 文件KEY;文件KEY */
    @ApiModelProperty(value="文件KEY",notes = "文件KEY")
    @Column(name = "file_key", nullable = false,length=50 )
    @ColumnComment("文件KEY")
    private String fileKey ;
    /** 文件MD5值;文件MD5值 */
    @ApiModelProperty(value="文件MD5值",notes = "文件MD5值")
    @Column(name = "file_md5", nullable = true,length=50 )
    @ColumnComment("文件MD5值")
    private String fileMd5 ;
    /** 文件名;文件名 */
    @ApiModelProperty(value="文件名",notes = "文件名")
    @Column(name = "file_name", nullable = true,length=255 )
    @ColumnComment("文件名")
    private String fileName ;
    /** MIME类型;MIME类型 */
    @ApiModelProperty(value="MIME类型",notes = "MIME类型")
    @Column(name = "file_mime_type", nullable = true,length=128 )
    @ColumnComment("MIME类型")
    private String fileMimeType ;
    /** 文件后缀;文件后缀 */
    @ApiModelProperty(value="文件后缀",notes = "文件后缀")
    @Column(name = "file_suffix", nullable = true,length=20 )
    @ColumnComment("文件后缀")
    private String fileSuffix ;
    /** 文件大小;文件大小 */
    @ApiModelProperty(value="文件大小",notes = "文件大小")
    @Column(name = "file_size", nullable = true,length=20 )
    @ColumnComment("文件大小")
    private Long fileSize ;
    /** 预览图 0:无 1:有;预览图 0:无 1:有 */
    @ApiModelProperty(value="预览图 0:无 1:有",notes = "预览图 0:无 1:有")
    @Column(name = "is_preview", nullable = true,length=1 )
    @ColumnComment("预览图 0:无 1:有")
    private Integer isPreview ;
    /** 是否私有 0:否 1:是;是否私有 0:否 1:是 */
    @ApiModelProperty(value="是否私有 0:否 1:是",notes = "是否私有 0:否 1:是")
    @Column(name = "is_private", nullable = true,length=1 )
    @ColumnComment("是否私有 0:否 1:是")
    private Integer isPrivate ;
    /** 存储桶;存储桶 */
    @ApiModelProperty(value="存储桶",notes = "存储桶")
    @Column(name = "storage_bucket", nullable = true,length=20 )
    @ColumnComment("存储桶")
    private String storageBucket ;
    /** 存储桶路径;存储桶路径 */
    @ApiModelProperty(value="存储桶路径",notes = "存储桶路径")
    @Column(name = "storage_path", nullable = true,length=50 )
    @ColumnComment("存储桶路径")
    private String storagePath ;
    /** 上传任务id;上传任务id */
    @ApiModelProperty(value="上传任务id",notes = "上传任务id")
    @Column(name = "upload_task_id", nullable = true,length=255 )
    @ColumnComment("上传任务id")
    private String uploadTaskId ;
    /** 状态 0:未完成 1:已完成;状态 0:未完成 1:已完成 */
    @ApiModelProperty(value="状态 0:未完成 1:已完成",notes = "状态 0:未完成 1:已完成")
    @Column(name = "is_finished", nullable = true,length=1 )
    @ColumnComment("状态 0:未完成 1:已完成")
    private Integer isFinished ;
    /** 是否分块 0:否 1:是;是否分块 0:否 1:是 */
    @ApiModelProperty(value="是否分块 0:否 1:是",notes = "是否分块 0:否 1:是")
    @Column(name = "is_part", nullable = true,length=1 )
    @ColumnComment("是否分块 0:否 1:是")
    private Integer isPart ;
    /** 分块数量;分块数量 */
    @ApiModelProperty(value="分块数量",notes = "分块数量")
    @Column(name = "part_number", nullable = true,length=10 )
    @ColumnComment("分块数量")
    private Integer partNumber ;
    /** 创建时间;创建时间 */
    @ApiModelProperty(value="创建时间",notes = "创建时间")
    @Column(name = "create_time", nullable = true,length=255 )
    @ColumnComment("创建时间")
    private Date createTime ;
    /** 创建用户;创建用户 */
    @ApiModelProperty(value="创建用户",notes = "创建用户")
    @Column(name = "create_user", nullable = true,length=255 )
    @ColumnComment("创建用户")
    private String createUser ;
    /** 更新时间;更新时间 */
    @ApiModelProperty(value="更新时间",notes = "更新时间")
    @Column(name = "update_time", nullable = true,length=255 )
    @ColumnComment("更新时间")
    private Date updateTime ;
    /** 更新用户;更新用户 */
    @ApiModelProperty(value="更新用户",notes = "更新用户")
    @Column(name = "update_user", nullable = true,length=255 )
    @ColumnComment("更新用户")
    private String updateUser ;
}